package com.bootdo.wx.api;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.bootdo.common.utils.R;
import com.bootdo.common.utils.StringUtils;
import com.bootdo.wx.service.LessonClassService;
import com.bootdo.wx.service.LessonService;
import com.bootdo.wx.service.MemberMamaService;
import com.bootdo.wx.service.MemberUserService;

/**
 * @author Administrator
 *
 */
@Controller
@RequestMapping("/api/lesson")
public class ApiLessonController {
	@Autowired
	private LessonService lessonService;
	@Autowired
	private LessonClassService lessonClassService;
	@Autowired
	private MemberUserService memberUserService;
	@Autowired
	private MemberMamaService memberMamaService;
	
	/***
	 * 
	 * @author long
	 * 2020年6月22日下午4:31:50
	 * 方法释义: 根据周期,获取详细信息
	 * 参数:userCycle --用户周期
	 *
	 */
	@RequestMapping("/getBaoMaByCycle")
    @ResponseBody
    public R getBaoMaByCycle(@RequestBody Map<String, Object> map) {
		 if (!map.containsKey("userCycle")
	        		)
	        {
	            return R.error("参数错误");
	        }
        try {
            return memberMamaService.getBaoMaByCycle(map);
        } catch (Exception e) {
            return R.error("查询错误");
        }

    }
	
	
	/***
	 * 
	 * @author long
	 * 2020年6月22日上午10:20:04
	 * 方法释义: 获取所有周期和用户孕期
	 * 参数: userId -- 用户id
	 * userId 用户id
	 */
	@RequestMapping("/getAllCycle")
    @ResponseBody
    public R getAllCycle(@RequestBody Map<String, Object> map) {
		 if (!map.containsKey("userId")
	        		)
	        {
	            return R.error("参数错误");
	        }
        try {
            return memberMamaService.getAllCycle(map);
        } catch (Exception e) {
            return R.error("查询错误");
        }

    }
	
	/***
	 * 
	 * @author long
	 * 2020年6月20日下午3:27:58
	 * 方法释义: 获得预产期
	 * 参数:userId-- 用户id
	 *
	 */
	@RequestMapping("/getOverdue")
    @ResponseBody
    public R getOverdue(@RequestBody Map<String, Object> map) {
        if (!map.containsKey("userId")
        		)
        {
            return R.error("参数错误");
        }
        try {
            return memberUserService.getOverdue(map);
        } catch (Exception e) {
            return R.error("查询错误");
        }

    }
	
	/***
	 * 
	 * @author long
	 * 2020年6月20日下午3:00:13
	 * 方法释义: 添加和修改孕妈末次月经时间并计算预产期
	 * 参数: userId 用户id days--末次月经时间 2020-5-10 的形式
	 *
	 */
	@RequestMapping("/setMemberDays")
    @ResponseBody
    public R setMemberDays(@RequestBody Map<String, Object> map) {
        if (!map.containsKey("userId")||
        		!map.containsKey("days")
        		)
        {
            return R.error("参数错误");
        }
        try {
            return memberUserService.setMemberDays(map);
        } catch (Exception e) {
            return R.error("查询错误");
        }

    }
	
	
	
	/***
	 * 
	 * @author long
	 * 2020年6月20日上午11:01:27
	 * 方法释义: 获取视频或者文章详情
	 * 参数: type 0视频 1文章
	 *  type为0 视频id 1为文章id
	 *
	 */
	@RequestMapping("/getLessonInfo")
    @ResponseBody
    public R getLessonInfo(@RequestBody Map<String, Object> map) {
        if (!map.containsKey("type")||
        		!map.containsKey("id")
        		)
        {
            return R.error("参数错误");
        }
        try {
            return lessonService.getLessonInfo(map);
        } catch (Exception e) {
            return R.error("查询错误");
        }

    }
	
	
	/***
	 * 
	 * @author long
	 * 2020年6月20日上午10:30:11
	 * 方法释义: 根据分类id获取列表
	 * 参数: type 0视频列表 1文章列表
	 * classId 分类id  pageNum  pageSize
	 *
	 */
	@RequestMapping("/getLessonListByClassId")
    @ResponseBody
    public R getLessonListByClassId(@RequestBody Map<String, Object> map) {
        if (!map.containsKey("type")||
        		!map.containsKey("classId")
        		)
        {
            return R.error("参数错误");
        }
        try {
            return lessonService.getLessonListByClassId(map);
        } catch (Exception e) {
            return R.error("查询错误");
        }

    }
	
	
	/***
	 * 
	 * @author long
	 * 2020年6月20日上午10:28:35
	 * 方法释义: 获取所有视频和文章的分类
	 * 参数: 
	 *
	 */
	@RequestMapping("/getLessonClass")
    @ResponseBody
    public R getLessonClass() {
        try {
        	List<Map<String, Object>> queryAllForIdAndName = lessonClassService.queryAllForIdAndName(new HashMap<>());
            return R.ok().put("data", queryAllForIdAndName);
        } catch (Exception e) {
            return R.error("查询错误");
        }

    }
	
	/***
	 * 
	 * @author long
	 * 2020年6月20日上午9:50:06
	 * 方法释义: 获取推荐 视频和文章
	 * 参数: type--0首页视频 1健康视频2文章
	 * pageNum  pageSize  分页
	 *
	 */
	@RequestMapping("/getRecommend")
    @ResponseBody
    public R getRecommend(@RequestBody Map<String, Object> map) {
        if (!map.containsKey("type"))
        {
            return R.error("参数错误");
        }
        try {
            return lessonService.getRecommend(map);
        } catch (Exception e) {
            return R.error("查询错误");
        }

    }
}
